home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1993…stman Always Clicks Twice / ADC Developer CD (1993-01) (''The Postman Always Clicks Twice'')_iso / Dev.CD 199301.iso / Development Platforms / Apple II / Essentials / APW Interfaces / CInclude / Resources.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-02-26  |  8.9 KB  |  222 lines  |  [TEXT/MPS ]

  1. /********************************************
  2. ; File: Resources.h
  3. ;
  4. ;
  5. ; Copyright Apple Computer, Inc.1986-92
  6. ; All Rights Reserved
  7. ;
  8. ********************************************/
  9. #ifndef __TYPES__
  10. #include <TYPES.h>
  11. #endif
  12.  
  13. #ifndef __MEMORY__
  14. #include <MEMORY.h>
  15. #endif
  16.  
  17. #ifndef __GSOS__
  18. #include <GSOS.h>
  19. #endif
  20.  
  21. #ifndef __RESOURCES__
  22. #define __RESOURCES__
  23.  
  24.  
  25. /* ResourceConverter Codes */
  26. #define resLogOut 0x0
  27. #define resLogIn 0x1
  28. #define resLogApp 0x0
  29. #define resLogSys 0x2
  30.  
  31. /* Error Codes */
  32. #define resForkUsed 0x1E01  /* Resource fork not empty */
  33. #define resBadFormat 0x1E02  /* Format of resource fork is unknown */
  34. #define resNoConverter 0x1E03  /* No converter routine available for resource type */
  35. #define resNoCurFile 0x1E04  /* there are no current open resource files */
  36. #define resDupID 0x1E05  /* ID is already used */
  37. #define resNotFound 0x1E06  /* resource was not found */
  38. #define resFileNotFound 0x1E07  /* resource file not found */
  39. #define resBadAppID 0x1E08  /* User ID not found, please call ResourceStartup */
  40. #define resNoUniqueID 0x1E09  /* a unique ID was not found */
  41. #ifndef resIndexRange  /* Index is out of range */
  42. #define resIndexRange 0x1E0A
  43. #endif
  44. #define resSysIsOpen 0x1E0B  /* System file is already open */
  45. #define resHasChanged 0x1E0C  /* Resource marked changed; specified operation not allowed */
  46. #define resDiffConverter 0x1E0D  /* Different converter already logged in for this resource type */
  47. #define resDiskFull 0x1E0E  /* Volume is full */
  48. #define resInvalidShutDown 0x1E0F /* can't shut down ID 401E */
  49. #define resNameNotFound 0x1E10 /* no resource with given name */
  50. #define resBadNameVers 0x1E11 /* bad version in rResName resource */
  51. #define resDupStartUp 0x1E12 /* already started with this ID */
  52. #define resInvalidTypeOrID 0x1E13 /* type or ID is 0 */
  53.  
  54. /* Other Constants */
  55. #define resChanged 0x0020
  56. #define resPreLoad 0x0040
  57. #define resProtected 0x0080
  58. #define resAbsLoad 0x0400
  59. #define resConverter 0x0800
  60. #define resMemAttr 0xC31C  /* Flags passed to the NewHandle Memory Manager call */
  61. #define systemMap 0x0001
  62. #define mapChanged 0x0002
  63. #define romMap 0x0004
  64. #define resNameOffset 0x10000  /* type holding names */
  65. #define resNameVersion 0x0001
  66. #define sysFileID 0x0001
  67.  
  68. /* Resource Type Numbers */
  69. #define rIcon 0x8001  /* Icon type */
  70. #define rPicture 0x8002  /* Picture type */
  71. #define rControlList 0x8003  /* Control list type */
  72. #define rControlTemplate 0x8004  /* Control template type */
  73. #define rC1InputString 0x8005  /* GS/OS class 1 input string */
  74. #define rPString 0x8006  /* Pascal string type */
  75. #define rStringList 0x8007  /* String list type */
  76. #define rMenuBar 0x8008  /* MenuBar type */
  77. #define rMenu 0x8009  /* Menu template */
  78. #define rMenuItem 0x800A  /* Menu item definition */
  79. #define rTextForLETextBox2 0x800B  /* Data for LineEdit LETextBox2 call */
  80. #define rCtlDefProc 0x800C  /* Control definition procedure type */
  81. #define rCtlColorTbl 0x800D  /* Color table for control */
  82. #define rWindParam1 0x800E  /* Parameters for NewWindow2 call */
  83. #define rWindParam2 0x800F  /* Parameters for NewWindow2 call */
  84. #define rWindColor 0x8010  /* Window Manager color table */
  85. #define rTextBlock 0x8011  /* Text block */
  86. #define rStyleBlock 0x8012  /* TextEdit style information */
  87. #define rToolStartup 0x8013  /* Tool set startup record */
  88. #define rResName 0x8014  /* Resource name */
  89. #define rAlertString 0x8015  /* AlertWindow input data */
  90. #define rText 0x8016  /* Unformatted text */
  91. #define rCodeResource 0x8017
  92. #define rCDEVCode 0x8018
  93. #define rCDEVFlags 0x8019
  94. #define rTwoRects 0x801A  /* Two rectangles */
  95. #define rFileType 0x801B /* Filetype descriptors--see File Type Note $42 */
  96. #define rListRef 0x801C  /* List member */
  97. #define rCString 0x801D  /* C string */
  98. #define rXCMD 0x801E
  99. #define rXFCN 0x801F
  100. #define rErrorString 0x8020  /* ErrorWindow input data */
  101. #define rKTransTable 0x8021  /* Keystroke translation table */
  102. #define rWString 0x8022 /* not useful--duplicates $8005 */
  103. #define rC1OutputString 0x8023  /* GS/OS class 1 output string */
  104. #define rSoundSample 0x8024
  105. #define rTERuler 0x8025  /* TextEdit ruler information */
  106. #define rFSequence 0x8026
  107. #define rCursor 0x8027  /* Cursor resource type */
  108. #define rItemStruct 0x8028 /* for 6.0 Menu Manager */
  109. #define rVersion 0x8029
  110. #define rComment 0x802A
  111. #define rBundle 0x802B
  112. #define rFinderPath 0x802C
  113. #define rPaletteWindow 0x802D /* used by HyperCard IIgs 1.1 */
  114. #define rTaggedStrings 0x802E
  115. #define rPatternList 0x802F
  116. #define rRectList 0xC001
  117. #define rPrintRecord 0xC002
  118. #define rFont 0xC003
  119.  
  120. typedef long ResID;
  121. typedef word ResType;
  122. typedef word ResAttr;
  123. struct ResHeaderRec {
  124.    LongWord rFileVersion; /* Format version of resource fork */
  125.    LongWord rFileToMap; /* Offset from start to resource map record */
  126.    LongWord rFileMapSize; /* Number of bytes map occupies in file */
  127.    Byte rFileMemo[128]; /* Reserved space for application */
  128. } ;
  129. typedef struct ResHeaderRec ResHeaderRec;
  130. struct FreeBlockRec {
  131.    LongWord blkOffset;
  132.    LongWord blkSize;
  133. } ;
  134. typedef struct FreeBlockRec FreeBlockRec;
  135. struct ResMap {
  136.    struct ResMap **mapNext; /* Handle to next resource map */
  137.    Word mapFlag; /* Bit Flags */
  138.    LongWord mapOffset; /* Map's file position */
  139.    LongWord mapSize; /* Number of bytes map occupies in file */
  140.    Word mapToIndex;
  141.    Word mapFileNum;
  142.    Word mapID;
  143.    LongWord mapIndexSize;
  144.    LongWord mapIndexUsed;
  145.    Word mapFreeListSize;
  146.    Word mapFreeListUsed;
  147.    FreeBlockRec mapFreeList[1]; /* n bytes (array of free block records) */
  148. } ;
  149. typedef struct ResMap ResMap, *ResMapPtr, **ResMapHndl;
  150. typedef struct ResMap MapRec, *MapRecPtr, **MapRecHndl;    /* TBR3 definition */
  151. struct ResRefRec {
  152.    ResType resType;
  153.    ResID resID;
  154.    LongWord resOffset;
  155.    ResAttr resAttr;
  156.    LongWord resSize;
  157.    Handle resHandle;
  158. } ;
  159. typedef struct ResRefRec ResRefRec, *ResRefRecPtr;
  160. struct ResourceSpec {
  161.    ResType resourceType;
  162.    ResID resourceID;
  163. } ;
  164. typedef struct ResourceSpec ResourceSpec;
  165. struct ResNameEntry {
  166.    ResID namedResID;
  167.    Str255 resName;
  168. } ;
  169. typedef struct ResNameEntry ResNameEntry, *ResNameEntryPtr;
  170. struct ResNameRec {
  171.    Word version;
  172.    LongWord nameCount;
  173.    ResNameEntry resNameEntries[1];
  174. } ;
  175. typedef struct ResNameRec ResNameRec, *ResNameRecPtr, **ResNameRecHndl;
  176. extern pascal void AddResource() inline(0x0C1E,dispatcher);
  177. extern pascal void CloseResourceFile() inline(0x0B1E,dispatcher);
  178. extern pascal LongWord CountResources() inline(0x221E,dispatcher);
  179. extern pascal Word CountTypes() inline(0x201E,dispatcher);
  180. extern pascal void CreateResourceFile() inline(0x091E,dispatcher);
  181. extern pascal void DetachResource() inline(0x181E,dispatcher);
  182. extern pascal Word GetCurResourceApp() inline(0x141E,dispatcher);
  183. extern pascal Word GetCurResourceFile() inline(0x121E,dispatcher);
  184. extern pascal ResID GetIndResource() inline(0x231E,dispatcher);
  185. extern pascal ResType GetIndType() inline(0x211E,dispatcher);
  186. extern pascal ResMapHndl GetMapHandle() inline(0x261E,dispatcher);
  187. extern pascal Word GetOpenFileRefNum() inline(0x1F1E,dispatcher);
  188. extern pascal ResAttr GetResourceAttr() inline(0x1B1E,dispatcher);
  189. extern pascal LongWord GetResourceSize() inline(0x1D1E,dispatcher);
  190. extern pascal Word HomeResourceFile() inline(0x151E,dispatcher);
  191. extern pascal LongWord LoadAbsResource() inline(0x271E,dispatcher);
  192. extern pascal Handle LoadResource() inline(0x0E1E,dispatcher);
  193. extern pascal void MarkResourceChange() inline(0x101E,dispatcher);
  194. extern pascal void MatchResourceHandle() inline(0x1E1E,dispatcher);
  195. extern pascal Word OpenResourceFile() inline(0x0A1E,dispatcher);
  196. extern pascal void ReleaseResource() inline(0x171E,dispatcher);
  197. extern pascal void RemoveResource() inline(0x0F1E,dispatcher);
  198. extern pascal void ResourceBootInit() inline(0x011E,dispatcher);
  199. extern pascal void ResourceConverter() inline(0x281E,dispatcher);
  200. extern pascal void ResourceReset() inline(0x051E,dispatcher);
  201. extern pascal void ResourceShutDown() inline(0x031E,dispatcher);
  202. extern pascal void ResourceStartUp() inline(0x021E,dispatcher);
  203. extern pascal Boolean ResourceStatus() inline(0x061E,dispatcher);
  204. extern pascal Word ResourceVersion() inline(0x041E,dispatcher);
  205. extern pascal void SetCurResourceApp() inline(0x131E,dispatcher);
  206. extern pascal void SetCurResourceFile() inline(0x111E,dispatcher);
  207. extern pascal void SetResourceAttr() inline(0x1C1E,dispatcher);
  208. extern pascal Word SetResourceFileDepth() inline(0x251E,dispatcher);
  209. extern pascal void SetResourceID() inline(0x1A1E,dispatcher);
  210. extern pascal Word SetResourceLoad() inline(0x241E,dispatcher);
  211. extern pascal ResID UniqueResourceID() inline(0x191E,dispatcher);
  212. extern pascal void UpdateResourceFile() inline(0x0D1E,dispatcher);
  213. extern pascal void WriteResource() inline(0x161E,dispatcher);
  214.  
  215. extern pascal Handle LoadResource2() inline(0x291E,dispatcher);
  216. extern pascal LongWord RMFindNamedResource() inline(0x2A1E,dispatcher);
  217. extern pascal void RMGetResourceName() inline(0x2B1E,dispatcher);
  218. extern pascal Handle RMLoadNamedResource() inline(0x2C1E,dispatcher);
  219. extern pascal void RMSetResourceName() inline(0x2D1E,dispatcher);
  220.  
  221. #endif
  222.